Ralstonia Effectors Project

2025-04-24

Return to Homepage

The inspiration for this project

My good friends from Purdue

2024 Plant Biology and Data Science (PURE-PD)1 Lizzie, Dialo, and Jeremy pictured

I spent the Summer of 2024 in a small town in Indiana killing plants. I worked at Purdue University (Go Boilermakers!) in the plant pathology department. There, I had the pleasure of working in Dr. Anjali Iyer-Pascuzzi’s Lab with my mentor, Abbie2 Shout out to Abbie for being the best mentor ever. Her lab specializes in characterizing and analyzing Ralstonia solanacearum which is a pathogenic bacterium that causes damage to potatoes, tomatoes, and geraniums. I learned how to do colonization assays, plant infiltrations, and ROS assays to determine how certain effectors within Ralstonia work. Effectors are proteins that are injected into a host organism to create more favorable colonization conditions3 Effectors can come in all shapes and sizes, but my project will mostly investigate Type 3 ones. My interest in effectors did not end when I returned to Utah.

My lab

The best part about Ralstonia is that, in certain media, it has a Barbie Pink color:

With all that sentimental stuff done, here is the project:

The Project

There are A LOT of different effectors within Ralstonia solanacearum. This led me to wonder how they could be connected and how they have evolved in different strains of this bacterium.

The tale of no good, very bad spreadsheets

After many hours of looking for a good data set, I thought I found one. I was wrong. I found a useful table from Plant-Host Interactions (PHI-base). This database collects different effectors from many pathogens. While this is a cool data set, I soon realized that many of the genes are mislabeled, there is A TON of missing data for Ralstonia, and I was not going to get very far with it 4 I probably should have stopped after some questionable cleaning. This is where I realized I would need a new data set.

That data set was not completely useless, so here are some interesting connections from information about Ralstonia from PHI-base.

## Rows: 58 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (9): ProteinID, GeneLocusID, Gene_name, Pathogen_species, Disease_name, ...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Ok as you can see the information from there was not entirely helpful to my project as there weren’t that many strains of Ralstonia solanacearum recorded. And the effectors were mislabeled and often duplicated.5 Ok I’ll stop complaining

Back to business

I started work with another data set that contained many Rip (Ralstonia injected proteins) types and strain variants. 6 New data set from this really cool paper: “Repertoire, unified nomenclature and evolution of the Type III effector gene set in the Ralstonia solanacearum species complex” by Nemo Peeters et al. Here is a table to look through them:7 Feel free to click through all 63 pages

## Warning: package 'reactable' was built under R version 4.4.3
## Rows: 622 Columns: 5
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): #Species, accession, type, name, description
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

After getting this data, I had to pull the protein sequences from NCBI’s GenBank. The only problem, there are 622 sequences. No matter how much I believe in my laptop, it won’t survive that request.

Downloading the protein sequences

So, I had to do it in batches:8 Shoutout to many internet searches on how to get this to work and generative AI

library(rentrez)
library(seqinr)
#getting only the accession numbers
ral_dfaccession <- ral_df$accession
#getting sequences
ids <- ral_dfaccession
# split into batches of 20 (all my computer can handle)
batch_size <- 20
id_batches <- split(ids, ceiling(seq_along(ids) / batch_size))
all_seqs <- list()
for (i in seq_along(id_batches)) {
  cat("Downloading batch", i, "\n")
  #FASTA sequences
  fasta <- entrez_fetch(db="protein", id=id_batches[[i]], rettype="fasta", retmode="text")
  # FASTA into individual sequences
  temp <- tempfile()
  writeLines(fasta, temp)
  seqs <- read.fasta(temp, seqtype="AA", as.string=TRUE)
  all_seqs <- c(all_seqs, seqs)
}

These FASTA sequences were saved. Next, their names had to be changed.9 A cruel punishment to make me rename everything For those out there who must suffer as I did, here is the code for that:

#renaming so not accession numbers
sequences <- read.FASTA("ralproteins.fasta", type="AA")
#accession numbers as sequence names
names_df <- data.frame(accession = names(sequences))
#merge tables to find where differences and get rid of different ones
merged_df <- merge(names_df, ral_df, by = "accession", all.x = TRUE)
merged_df$fullname <- paste(merged_df$name, merged_df$`#Species`)
# renamed sequences
names(sequences) <- merged_df$fullname
#saved the renamed sequences
write.fasta(sequences, names = names(sequences), file.out = "ral_fullname.fasta")

At last, we can move on.10 Most of these were NOT problems I thought about. Consider this in the future

Aligning sequences

Following this, the sequences have to be aligned. There are a couple different options, but after doing some research I think I will use the msa package as it is efficient and maybe won’t melt my computer.

I will need to break up the Rip proteins quite a bit to get my computer to run anything.11 I am writing this after many hours of troubleshooting due to file size

Here is an small preview of an alignment for the RipU proteins from different species:12 Labels for sequences are missing because they simply did not fit, my bad

In starting the alignment, different proteins need to be compared across the different strains of Ralstonia. The msa package was used here with the alignment type= “Muscle”. This was used, not only because it has a cool name, but also because it was said to be good for accurate sequence alignment, even when the sequences are short. 13 As is the case with most effectors.

Building the tree

For RipU, here is a small tree to show the connections of this effector within different bacterial strains. 14 RipU is close to my heart since I worked with it so much

## Determining distance matrix based on shared 7-mers:
## ================================================================================
## 
## Time difference of 0 secs
## 
## Clustering into groups by similarity:
## ================================================================================
## 
## Time difference of 0.31 secs
## 
## Aligning Sequences:
## ================================================================================
## 
## Time difference of 0.08 secs
## 
## Iteration 1 of 2:
## 
## Determining distance matrix based on alignment:
## ================================================================================
## 
## Time difference of 0 secs
## 
## Reclustering into groups by similarity:
## ================================================================================
## 
## Time difference of 0 secs
## 
## Realigning Sequences:
## ================================================================================
## 
## Time difference of 0.09 secs
## 
## Iteration 2 of 2:
## 
## Determining distance matrix based on alignment:
## ================================================================================
## 
## Time difference of 0 secs
## 
## Reclustering into groups by similarity:
## ================================================================================
## 
## Time difference of 0 secs
## 
## Realigning Sequences:
## ================================================================================
## 
## Time difference of 0 secs
## 
## Refining the alignment:
## ================================================================================
## 
## Time difference of 0.05 secs
## ================================================================================
## 
## Time difference of 0 secs
## Optimizing up to 1000 candidate trees:
## 
## Tree #1. length = 2.729 (0.000%), 0 Climbs                                     
## Tree #2. length = 2.729 (0.000%), 7 Climbs, 0 Grafts of 0                      
## Tree #3. length = 2.729 (0.000%), 6 Climbs, 0 Grafts of 0                      
## Tree #4. length = 2.729 (0.000%), 3 Climbs, 0 Grafts of 0                      
## Tree #5. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 1                      
## Tree #6. length = 2.729 (0.000%), 4 Climbs                                     
## Tree #7. length = 2.729 (0.000%), 6 Climbs, 0 Grafts of 1                      
## Tree #8. length = 2.729 (0.000%), 5 Climbs, 0 Grafts of 0                      
## Tree #9. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                      
## Tree #10. length = 2.729 (0.000%), 3 Climbs                                    
## Tree #11. length = 2.729 (0.000%), 6 Climbs, 0 Grafts of 0                     
## Tree #12. length = 2.729 (0.000%), 2 Climbs, 0 Grafts of 0                     
## Tree #13. length = 2.729 (0.000%), 5 Climbs, 0 Grafts of 0                     
## Tree #14. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 1                     
## Tree #15. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #16. length = 2.729 (0.000%), 5 Climbs, 0 Grafts of 1                     
## Tree #17. length = 2.729 (0.000%), 3 Climbs, 0 Grafts of 1                     
## Tree #18. length = 2.729 (0.000%), 6 Climbs, 0 Grafts of 1                     
## Tree #19. length = 2.729 (0.000%), 3 Climbs, 0 Grafts of 1                     
## Tree #20. length = 2.729 (0.000%), 6 Climbs, 0 Grafts of 0                     
## Tree #21. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 1                     
## Tree #22. length = 2.729 (0.000%), 11 Climbs, 0 Grafts of 0                    
## Tree #23. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #24. length = 2.729 (0.000%), 6 Climbs, 0 Grafts of 1                     
## Tree #25. length = 2.729 (0.000%), 11 Climbs, 0 Grafts of 1                    
## Tree #26. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #27. length = 2.729 (0.000%), 5 Climbs, 0 Grafts of 1                     
## Tree #28. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #29. length = 2.729 (0.000%), 9 Climbs, 0 Grafts of 1                     
## Tree #30. length = 2.729 (0.000%), 7 Climbs, 0 Grafts of 0                     
## Tree #31. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #32. length = 2.729 (0.000%), 8 Climbs, 0 Grafts of 0                     
## Tree #33. length = 2.729 (0.000%), 6 Climbs, 0 Grafts of 0                     
## Tree #34. length = 2.729 (0.000%), 14 Climbs, 0 Grafts of 0                    
## Tree #35. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #36. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #37. length = 2.729 (0.000%), 5 Climbs, 0 Grafts of 1                     
## Tree #38. length = 2.729 (0.000%), 1 Climb, 0 Grafts of 0                      
## Tree #39. length = 2.729 (0.000%), 10 Climbs, 0 Grafts of 0                    
## Tree #40. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #41. length = 2.729 (0.000%), 13 Climbs                                   
## Tree #42. length = 2.729 (0.000%), 11 Climbs, 0 Grafts of 1                    
## Tree #43. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #44. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #45. length = 2.729 (0.000%), 6 Climbs, 0 Grafts of 0                     
## Tree #46. length = 2.729 (0.000%), 6 Climbs                                    
## Tree #47. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #48. length = 2.729 (0.000%), 1 Climb, 0 Grafts of 0                      
## Tree #49. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #50. length = 2.729 (0.000%), 6 Climbs, 0 Grafts of 0                     
## Tree #51. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #52. length = 2.729 (0.000%), 2 Climbs, 0 Grafts of 1                     
## Tree #53. length = 2.729 (0.000%), 7 Climbs, 0 Grafts of 0                     
## Tree #54. length = 2.729 (0.000%), 8 Climbs, 0 Grafts of 0                     
## Tree #55. length = 2.729 (0.000%), 6 Climbs, 0 Grafts of 0                     
## Tree #56. length = 2.729 (0.000%), 1 Climb, 0 Grafts of 0                      
## Tree #57. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #58. length = 2.729 (0.000%), 7 Climbs, 0 Grafts of 0                     
## Tree #59. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #60. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #61. length = 2.729 (0.000%), 4 Climbs                                    
## Tree #62. length = 2.729 (0.000%), 7 Climbs, 0 Grafts of 0                     
## Tree #63. length = 2.729 (0.000%), 6 Climbs, 0 Grafts of 0                     
## Tree #64. length = 2.729 (0.000%), 2 Climbs, 0 Grafts of 0                     
## Tree #65. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 1                     
## Tree #66. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #67. length = 2.729 (0.000%), 9 Climbs, 0 Grafts of 0                     
## Tree #68. length = 2.729 (0.000%), 3 Climbs, 0 Grafts of 0                     
## Tree #69. length = 2.729 (0.000%), 9 Climbs, 0 Grafts of 0                     
## Tree #70. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #71. length = 2.729 (0.000%), 8 Climbs, 0 Grafts of 1                     
## Tree #72. length = 2.729 (0.000%), 8 Climbs, 0 Grafts of 0                     
## Tree #73. length = 2.729 (0.000%), 12 Climbs, 0 Grafts of 0                    
## Tree #74. length = 2.729 (0.000%), 8 Climbs, 0 Grafts of 0                     
## Tree #75. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #76. length = 2.729 (0.000%), 5 Climbs, 0 Grafts of 0                     
## Tree #77. length = 2.729 (0.000%), 6 Climbs, 0 Grafts of 0                     
## Tree #78. length = 2.729 (0.000%), 3 Climbs, 0 Grafts of 0                     
## Tree #79. length = 2.729 (0.000%), 10 Climbs, 0 Grafts of 0                    
## Tree #80. length = 2.729 (0.000%), 6 Climbs, 0 Grafts of 0                     
## Tree #81. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #82. length = 2.729 (0.000%), 5 Climbs, 0 Grafts of 0                     
## Tree #83. length = 2.729 (0.000%), 3 Climbs, 0 Grafts of 0                     
## Tree #84. length = 2.729 (0.000%), 6 Climbs, 0 Grafts of 0                     
## Tree #85. length = 2.729 (0.000%), 4 Climbs, 0 Grafts of 0                     
## Tree #86. length = 2.729 (0.000%), 2 Climbs, 0 Grafts of 0                     
## Tree #87. length = 2.729 (0.000%), 2 Climbs, 0 Grafts of 0                     
## Tree #88. length = 2.729 (0.000%), 8 Climbs, 0 Grafts of 0                     
## Tree #89. length = 2.729 (0.000%), 3 Climbs, 0 Grafts of 0                     
## Tree #90. length = 2.729 (0.000%), 4 Climbs                                    
## Tree #91. length = 2.729 (0.000%), 3 Climbs, 0 Grafts of 0                     
## Tree #92. length = 2.729 (0.000%), 10 Climbs, 0 Grafts of 0                    
## Tree #93. length = 2.729 (0.000%), 8 Climbs, 0 Grafts of 0                     
## Tree #94. length = 2.729 (0.000%), 7 Climbs                                    
## Tree #95. length = 2.729 (0.000%), 11 Climbs, 0 Grafts of 0                    
## Tree #96. length = 2.729 (0.000%), 9 Climbs, 0 Grafts of 0                     
## Tree #97. length = 2.729 (0.000%), 9 Climbs, 0 Grafts of 0                     
## Tree #98. length = 2.729 (0.000%), 12 Climbs, 0 Grafts of 0                    
## Tree #99. length = 2.729 (0.000%), 5 Climbs, 0 Grafts of 0                     
## Tree #100. length = 2.729 (0.000%), 3 Climbs, 0 Grafts of 0                    
## 
## Finalizing the best tree (#10):
## 
## length = 2.729 (0.000%), 0 Climbs                                              
## 
## Time difference of 0.4 secs

Now let’s make this better. Here is another chart with all of the “ripA” effectors. These effectors serve multiple purposes in suppressing transcription factors, altering pathways, and destroys the structure of microtubules.

#for all effectors
sequences_all <- readAAStringSet("ral_fullnamereal.fasta")
subset_sequencesripA <- sequences_all[grep("ripA", names(sequences_all))]


#aligning
alignRipA <- AlignSeqs(subset_sequencesripA)
## Determining distance matrix based on shared 7-mers:
## ================================================================================
## 
## Time difference of 0.02 secs
## 
## Clustering into groups by similarity:
## ================================================================================
## 
## Time difference of 0.03 secs
## 
## Aligning Sequences:
## ================================================================================
## 
## Time difference of 4.72 secs
## 
## Iteration 1 of 2:
## 
## Determining distance matrix based on alignment:
## ================================================================================
## 
## Time difference of 0.14 secs
## 
## Reclustering into groups by similarity:
## ================================================================================
## 
## Time difference of 0.04 secs
## 
## Realigning Sequences:
## ================================================================================
## 
## Time difference of 3.71 secs
## 
## Iteration 2 of 2:
## 
## Determining distance matrix based on alignment:
## ================================================================================
## 
## Time difference of 0.19 secs
## 
## Reclustering into groups by similarity:
## ================================================================================
## 
## Time difference of 0.04 secs
## 
## Realigning Sequences:
## ================================================================================
## 
## Time difference of 3.22 secs
## 
## Refining the alignment:
## ================================================================================
## 
## Time difference of 3.36 secs
#tree
allripA <- DistanceMatrix(subset_sequencesripA, correction="none", # choose a model
                        type="dist",
                        processors=NULL) # use all CPUs )
## ================================================================================
## 
## Time difference of 0.03 secs
tree_rips <- Treeline(myDistMatrix=allripA,
                      method="ME",
                      showPlot=FALSE,
                      processors=NULL)
## Optimizing up to 1000 candidate trees:
## 
## Tree #1. length = 56.012 (-0.201%), 12 Climbs                                  
## Tree #2. length = 56.012 (0.000%), 58 Climbs, 0 Grafts of 3                    
## Tree #3. length = 56.011 (-0.001%), 35 Climbs, 1 Graft of 9                    
## Tree #4. length = 55.999 (-0.020%), 74 Climbs, 2 Grafts of 8                   
## Tree #5. length = 55.999 (0.000%), 49 Climbs, 0 Grafts of 5                    
## Tree #6. length = 55.999 (0.000%), 79 Climbs, 0 Grafts of 3                    
## Tree #7. length = 55.999 (0.000%), 76 Climbs, 0 Grafts of 8                    
## Tree #8. length = 55.999 (0.000%), 100 Climbs, 0 Grafts of 7                   
## Tree #9. length = 55.999 (-0.001%), 105 Climbs, 1 Graft of 5                   
## Tree #10. length = 55.999 (0.000%), 54 Climbs, 0 Grafts of 7                   
## Tree #11. length = 55.999 (0.000%), 57 Climbs, 0 Grafts of 10                  
## Tree #12. length = 55.999 (0.000%), 50 Climbs, 0 Grafts of 8                   
## Tree #13. length = 55.999 (0.000%), 48 Climbs, 0 Grafts of 2                   
## Tree #14. length = 55.999 (0.000%), 77 Climbs, 0 Grafts of 5                   
## Tree #15. length = 55.999 (0.000%), 91 Climbs, 0 Grafts of 5                   
## Tree #16. length = 55.999 (0.000%), 30 Climbs, 0 Grafts of 5                   
## Tree #17. length = 55.999 (0.000%), 74 Climbs, 0 Grafts of 4                   
## Tree #18. length = 55.999 (0.000%), 90 Climbs, 0 Grafts of 4                   
## Tree #19. length = 55.999 (0.000%), 75 Climbs, 0 Grafts of 2                   
## Tree #20. length = 55.999 (0.000%), 81 Climbs, 0 Grafts of 2                   
## Tree #21. length = 55.995 (-0.006%), 51 Climbs, 1 Graft of 3                   
## Tree #22. length = 55.995 (0.000%), 68 Climbs, 0 Grafts of 7                   
## Tree #23. length = 55.995 (0.000%), 103 Climbs, 0 Grafts of 4                  
## Tree #24. length = 55.995 (0.000%), 49 Climbs, 0 Grafts of 3                   
## Tree #25. length = 55.995 (0.000%), 79 Climbs, 0 Grafts of 2                   
## Tree #26. length = 55.995 (0.000%), 109 Climbs, 0 Grafts of 7                  
## Tree #27. length = 55.995 (0.000%), 43 Climbs, 0 Grafts of 6                   
## Tree #28. length = 55.995 (0.000%), 55 Climbs, 0 Grafts of 3                   
## Tree #29. length = 55.995 (0.000%), 90 Climbs, 0 Grafts of 3                   
## Tree #30. length = 55.995 (0.000%), 102 Climbs, 0 Grafts of 4                  
## Tree #31. length = 55.995 (0.000%), 45 Climbs, 0 Grafts of 5                   
## Tree #32. length = 55.995 (0.000%), 83 Climbs, 0 Grafts of 3                   
## Tree #33. length = 55.995 (0.000%), 62 Climbs, 0 Grafts of 2                   
## Tree #34. length = 55.995 (0.000%), 99 Climbs, 0 Grafts of 1                   
## Tree #35. length = 55.995 (0.000%), 76 Climbs, 0 Grafts of 6                   
## Tree #36. length = 55.985 (-0.019%), 68 Climbs, 1 Graft of 5                   
## Tree #37. length = 55.985 (0.000%), 86 Climbs, 0 Grafts of 8                   
## Tree #38. length = 55.985 (0.000%), 68 Climbs, 0 Grafts of 6                   
## Tree #39. length = 55.985 (0.000%), 82 Climbs, 0 Grafts of 5                   
## Tree #40. length = 55.985 (~0.000%), 49 Climbs, 1 Graft of 5                   
## Tree #41. length = 55.985 (0.000%), 92 Climbs, 0 Grafts of 7                   
## Tree #42. length = 55.985 (0.000%), 77 Climbs, 0 Grafts of 7                   
## Tree #43. length = 55.985 (0.000%), 62 Climbs, 0 Grafts of 6                   
## Tree #44. length = 55.985 (0.000%), 70 Climbs, 0 Grafts of 2                   
## Tree #45. length = 55.985 (0.000%), 69 Climbs, 0 Grafts of 4                   
## Tree #46. length = 55.985 (0.000%), 85 Climbs, 0 Grafts of 5                   
## Tree #47. length = 55.985 (0.000%), 90 Climbs, 0 Grafts of 6                   
## Tree #48. length = 55.985 (0.000%), 52 Climbs, 0 Grafts of 3                   
## Tree #49. length = 55.985 (0.000%), 53 Climbs, 0 Grafts of 3                   
## Tree #50. length = 55.985 (0.000%), 35 Climbs, 0 Grafts of 6                   
## Tree #51. length = 55.985 (0.000%), 40 Climbs, 0 Grafts of 6                   
## Tree #52. length = 55.985 (0.000%), 54 Climbs, 0 Grafts of 2                   
## Tree #53. length = 55.985 (0.000%), 64 Climbs, 0 Grafts of 2                   
## Tree #54. length = 55.985 (0.000%), 56 Climbs, 0 Grafts of 3                   
## Tree #55. length = 55.985 (0.000%), 34 Climbs, 0 Grafts of 3                   
## Tree #56. length = 55.985 (0.000%), 64 Climbs, 0 Grafts of 4                   
## Tree #57. length = 55.985 (0.000%), 74 Climbs, 0 Grafts of 3                   
## Tree #58. length = 55.985 (0.000%), 102 Climbs, 0 Grafts of 3                  
## Tree #59. length = 55.985 (0.000%), 78 Climbs, 0 Grafts of 2                   
## Tree #60. length = 55.985 (0.000%), 102 Climbs, 0 Grafts of 3                  
## Tree #61. length = 55.985 (0.000%), 42 Climbs, 0 Grafts of 6                   
## Tree #62. length = 55.985 (0.000%), 101 Climbs, 0 Grafts of 2                  
## Tree #63. length = 55.985 (0.000%), 56 Climbs, 0 Grafts of 2                   
## Tree #64. length = 55.985 (0.000%), 98 Climbs, 0 Grafts of 4                   
## Tree #65. length = 55.985 (0.000%), 82 Climbs, 0 Grafts of 4                   
## Tree #66. length = 55.985 (0.000%), 71 Climbs, 0 Grafts of 3                   
## Tree #67. length = 55.985 (0.000%), 95 Climbs, 0 Grafts of 3                   
## Tree #68. length = 55.985 (0.000%), 79 Climbs, 0 Grafts of 1                   
## Tree #69. length = 55.985 (0.000%), 55 Climbs, 0 Grafts of 1                   
## Tree #70. length = 55.985 (0.000%), 87 Climbs, 0 Grafts of 3                   
## Tree #71. length = 55.985 (0.000%), 66 Climbs, 0 Grafts of 2                   
## Tree #72. length = 55.985 (0.000%), 71 Climbs, 0 Grafts of 2                   
## Tree #73. length = 55.985 (0.000%), 83 Climbs, 0 Grafts of 1                   
## Tree #74. length = 55.985 (0.000%), 102 Climbs, 0 Grafts of 3                  
## Tree #75. length = 55.985 (0.000%), 70 Climbs, 0 Grafts of 4                   
## Tree #76. length = 55.985 (0.000%), 53 Climbs, 0 Grafts of 2                   
## Tree #77. length = 55.985 (0.000%), 74 Climbs, 0 Grafts of 2                   
## Tree #78. length = 55.985 (0.000%), 64 Climbs, 0 Grafts of 1                   
## Tree #79. length = 55.985 (0.000%), 53 Climbs, 0 Grafts of 3                   
## Tree #80. length = 55.985 (0.000%), 59 Climbs, 0 Grafts of 1                   
## Tree #81. length = 55.985 (0.000%), 65 Climbs, 0 Grafts of 3                   
## Tree #82. length = 55.985 (0.000%), 61 Climbs, 0 Grafts of 2                   
## Tree #83. length = 55.985 (0.000%), 102 Climbs, 0 Grafts of 2                  
## Tree #84. length = 55.985 (0.000%), 73 Climbs, 0 Grafts of 2                   
## Tree #85. length = 55.985 (0.000%), 97 Climbs, 0 Grafts of 1                   
## Tree #86. length = 55.985 (0.000%), 110 Climbs, 0 Grafts of 1                  
## Tree #87. length = 55.985 (0.000%), 46 Climbs, 0 Grafts of 2                   
## Tree #88. length = 55.985 (0.000%), 88 Climbs, 0 Grafts of 1                   
## Tree #89. length = 55.985 (0.000%), 94 Climbs, 0 Grafts of 2                   
## Tree #90. length = 55.985 (0.000%), 69 Climbs, 0 Grafts of 1                   
## Tree #91. length = 55.985 (0.000%), 47 Climbs, 0 Grafts of 4                   
## Tree #92. length = 55.985 (0.000%), 80 Climbs, 0 Grafts of 1                   
## Tree #93. length = 55.985 (0.000%), 90 Climbs, 0 Grafts of 2                   
## Tree #94. length = 55.985 (0.000%), 78 Climbs, 0 Grafts of 1                   
## Tree #95. length = 55.985 (0.000%), 52 Climbs, 0 Grafts of 1                   
## Tree #96. length = 55.985 (0.000%), 52 Climbs, 0 Grafts of 2                   
## Tree #97. length = 55.985 (0.000%), 59 Climbs, 0 Grafts of 3                   
## Tree #98. length = 55.985 (0.000%), 70 Climbs, 0 Grafts of 3                   
## Tree #99. length = 55.985 (0.000%), 54 Climbs, 0 Grafts of 2                   
## Tree #100. length = 55.985 (0.000%), 59 Climbs, 0 Grafts of 1                  
## Tree #101. length = 55.985 (0.000%), 60 Climbs, 0 Grafts of 1                  
## Tree #102. length = 55.983 (-0.003%), 76 Climbs, 1 Graft of 3                  
## Tree #103. length = 55.983 (0.000%), 125 Climbs, 0 Grafts of 6                 
## Tree #104. length = 55.981 (-0.003%), 63 Climbs, 1 Graft of 10                 
## Tree #105. length = 55.981 (0.000%), 58 Climbs, 0 Grafts of 5                  
## Tree #106. length = 55.981 (0.000%), 73 Climbs, 0 Grafts of 9                  
## Tree #107. length = 55.981 (0.000%), 69 Climbs, 0 Grafts of 6                  
## Tree #108. length = 55.981 (0.000%), 111 Climbs, 0 Grafts of 6                 
## Tree #109. length = 55.981 (0.000%), 47 Climbs, 0 Grafts of 2                  
## Tree #110. length = 55.981 (0.000%), 63 Climbs, 0 Grafts of 5                  
## Tree #111. length = 55.981 (0.000%), 63 Climbs, 0 Grafts of 6                  
## Tree #112. length = 55.981 (0.000%), 99 Climbs, 0 Grafts of 5                  
## Tree #113. length = 55.981 (0.000%), 69 Climbs, 0 Grafts of 4                  
## Tree #114. length = 55.981 (0.000%), 90 Climbs, 0 Grafts of 3                  
## Tree #115. length = 55.981 (0.000%), 84 Climbs, 0 Grafts of 3                  
## Tree #116. length = 55.981 (0.000%), 69 Climbs, 0 Grafts of 3                  
## Tree #117. length = 55.981 (0.000%), 111 Climbs, 0 Grafts of 4                 
## Tree #118. length = 55.981 (0.000%), 66 Climbs, 0 Grafts of 3                  
## Tree #119. length = 55.981 (0.000%), 78 Climbs, 0 Grafts of 1                  
## Tree #120. length = 55.981 (0.000%), 50 Climbs, 0 Grafts of 5                  
## Tree #121. length = 55.981 (0.000%), 42 Climbs, 0 Grafts of 3                  
## Tree #122. length = 55.981 (0.000%), 106 Climbs, 0 Grafts of 3                 
## Tree #123. length = 55.981 (0.000%), 58 Climbs, 0 Grafts of 2                  
## Tree #124. length = 55.981 (0.000%), 84 Climbs, 0 Grafts of 1                  
## Tree #125. length = 55.981 (0.000%), 63 Climbs, 0 Grafts of 3                  
## Tree #126. length = 55.981 (0.000%), 67 Climbs, 0 Grafts of 2                  
## Tree #127. length = 55.981 (0.000%), 55 Climbs, 0 Grafts of 6                  
## Tree #128. length = 55.979 (-0.005%), 41 Climbs, 1 Graft of 5                  
## Tree #129. length = 55.979 (0.000%), 59 Climbs, 0 Grafts of 8                  
## Tree #130. length = 55.979 (0.000%), 125 Climbs, 0 Grafts of 6                 
## Tree #131. length = 55.979 (0.000%), 70 Climbs, 0 Grafts of 6                  
## Tree #132. length = 55.979 (0.000%), 67 Climbs, 0 Grafts of 5                  
## Tree #133. length = 55.979 (0.000%), 64 Climbs, 0 Grafts of 2                  
## Tree #134. length = 55.979 (0.000%), 42 Climbs, 0 Grafts of 2                  
## Tree #135. length = 55.979 (0.000%), 67 Climbs, 0 Grafts of 8                  
## Tree #136. length = 55.973 (-0.011%), 38 Climbs, 1 Graft of 5                  
## Tree #137. length = 55.973 (0.000%), 50 Climbs, 0 Grafts of 11                 
## Tree #138. length = 55.973 (0.000%), 44 Climbs, 0 Grafts of 5                  
## Tree #139. length = 55.973 (0.000%), 40 Climbs, 0 Grafts of 6                  
## Tree #140. length = 55.973 (0.000%), 70 Climbs, 0 Grafts of 4                  
## Tree #141. length = 55.973 (0.000%), 83 Climbs, 0 Grafts of 6                  
## Tree #142. length = 55.973 (0.000%), 51 Climbs, 0 Grafts of 4                  
## Tree #143. length = 55.973 (0.000%), 107 Climbs, 0 Grafts of 7                 
## Tree #144. length = 55.973 (0.000%), 66 Climbs, 0 Grafts of 3                  
## Tree #145. length = 55.973 (0.000%), 64 Climbs, 0 Grafts of 4                  
## Tree #146. length = 55.973 (0.000%), 93 Climbs, 0 Grafts of 4                  
## Tree #147. length = 55.973 (0.000%), 92 Climbs, 0 Grafts of 3                  
## Tree #148. length = 55.973 (0.000%), 51 Climbs, 0 Grafts of 7                  
## Tree #149. length = 55.973 (0.000%), 96 Climbs, 0 Grafts of 5                  
## Tree #150. length = 55.973 (0.000%), 104 Climbs, 0 Grafts of 1                 
## Tree #151. length = 55.973 (0.000%), 43 Climbs, 0 Grafts of 4                  
## Tree #152. length = 55.973 (0.000%), 65 Climbs, 0 Grafts of 4                  
## Tree #153. length = 55.973 (0.000%), 75 Climbs, 0 Grafts of 3                  
## Tree #154. length = 55.973 (0.000%), 151 Climbs, 0 Grafts of 2                 
## Tree #155. length = 55.973 (0.000%), 126 Climbs, 0 Grafts of 2                 
## Tree #156. length = 55.973 (0.000%), 62 Climbs, 0 Grafts of 1                  
## Tree #157. length = 55.973 (0.000%), 60 Climbs, 0 Grafts of 7                  
## Tree #158. length = 55.973 (0.000%), 57 Climbs, 0 Grafts of 6                  
## Tree #159. length = 55.973 (0.000%), 52 Climbs, 0 Grafts of 2                  
## Tree #160. length = 55.973 (0.000%), 84 Climbs, 0 Grafts of 1                  
## Tree #161. length = 55.973 (0.000%), 73 Climbs, 0 Grafts of 1                  
## Tree #162. length = 55.973 (0.000%), 39 Climbs, 0 Grafts of 3                  
## Tree #163. length = 55.973 (0.000%), 108 Climbs, 0 Grafts of 4                 
## Tree #164. length = 55.973 (0.000%), 75 Climbs, 0 Grafts of 2                  
## Tree #165. length = 55.973 (0.000%), 68 Climbs, 0 Grafts of 2                  
## Tree #166. length = 55.973 (0.000%), 89 Climbs, 0 Grafts of 2                  
## Tree #167. length = 55.973 (0.000%), 63 Climbs, 0 Grafts of 3                  
## Tree #168. length = 55.973 (0.000%), 71 Climbs, 0 Grafts of 3                  
## Tree #169. length = 55.973 (0.000%), 66 Climbs, 0 Grafts of 3                  
## Tree #170. length = 55.973 (0.000%), 47 Climbs, 0 Grafts of 2                  
## Tree #171. length = 55.973 (0.000%), 63 Climbs, 0 Grafts of 1                  
## Tree #172. length = 55.973 (0.000%), 62 Climbs, 0 Grafts of 1                  
## Tree #173. length = 55.973 (0.000%), 42 Climbs, 0 Grafts of 3                  
## Tree #174. length = 55.973 (0.000%), 69 Climbs, 0 Grafts of 1                  
## Tree #175. length = 55.973 (0.000%), 72 Climbs, 0 Grafts of 1                  
## Tree #176. length = 55.973 (0.000%), 54 Climbs, 0 Grafts of 2                  
## Tree #177. length = 55.973 (0.000%), 67 Climbs, 0 Grafts of 3                  
## Tree #178. length = 55.973 (0.000%), 72 Climbs, 0 Grafts of 2                  
## Tree #179. length = 55.973 (0.000%), 34 Climbs, 0 Grafts of 2                  
## Tree #180. length = 55.973 (0.000%), 78 Climbs, 0 Grafts of 5                  
## Tree #181. length = 55.973 (0.000%), 85 Climbs, 0 Grafts of 1                  
## Tree #182. length = 55.973 (0.000%), 88 Climbs, 0 Grafts of 2                  
## Tree #183. length = 55.973 (0.000%), 54 Climbs, 0 Grafts of 1                  
## Tree #184. length = 55.973 (0.000%), 78 Climbs, 0 Grafts of 1                  
## Tree #185. length = 55.973 (0.000%), 98 Climbs, 0 Grafts of 2                  
## Tree #186. length = 55.973 (0.000%), 72 Climbs, 0 Grafts of 3                  
## Tree #187. length = 55.973 (0.000%), 117 Climbs, 0 Grafts of 2                 
## Tree #188. length = 55.973 (0.000%), 70 Climbs, 0 Grafts of 3                  
## Tree #189. length = 55.973 (0.000%), 70 Climbs, 0 Grafts of 2                  
## Tree #190. length = 55.973 (0.000%), 99 Climbs, 0 Grafts of 1                  
## Tree #191. length = 55.973 (0.000%), 73 Climbs, 0 Grafts of 4                  
## Tree #192. length = 55.973 (0.000%), 52 Climbs, 0 Grafts of 2                  
## Tree #193. length = 55.973 (0.000%), 52 Climbs, 0 Grafts of 2                  
## Tree #194. length = 55.973 (0.000%), 53 Climbs, 0 Grafts of 4                  
## Tree #195. length = 55.973 (0.000%), 86 Climbs, 0 Grafts of 2                  
## Tree #196. length = 55.973 (0.000%), 90 Climbs, 0 Grafts of 2                  
## Tree #197. length = 55.973 (0.000%), 57 Climbs, 0 Grafts of 3                  
## Tree #198. length = 55.973 (0.000%), 75 Climbs, 0 Grafts of 1                  
## Tree #199. length = 55.973 (0.000%), 97 Climbs, 0 Grafts of 1                  
## Tree #200. length = 55.973 (0.000%), 103 Climbs, 0 Grafts of 1                 
## Tree #201. length = 55.973 (0.000%), 48 Climbs, 0 Grafts of 1                  
## Tree #202. length = 55.973 (0.000%), 102 Climbs, 0 Grafts of 1                 
## Tree #203. length = 55.973 (0.000%), 70 Climbs, 0 Grafts of 3                  
## Tree #204. length = 55.973 (0.000%), 89 Climbs, 0 Grafts of 1                  
## Tree #205. length = 55.973 (0.000%), 76 Climbs, 0 Grafts of 1                  
## Tree #206. length = 55.973 (0.000%), 87 Climbs, 0 Grafts of 3                  
## Tree #207. length = 55.973 (0.000%), 69 Climbs, 0 Grafts of 2                  
## Tree #208. length = 55.973 (0.000%), 81 Climbs, 0 Grafts of 3                  
## Tree #209. length = 55.973 (0.000%), 41 Climbs, 0 Grafts of 3                  
## Tree #210. length = 55.973 (0.000%), 63 Climbs, 0 Grafts of 1                  
## Tree #211. length = 55.973 (0.000%), 56 Climbs, 0 Grafts of 2                  
## Tree #212. length = 55.973 (0.000%), 65 Climbs, 0 Grafts of 1                  
## Tree #213. length = 55.973 (0.000%), 77 Climbs, 0 Grafts of 6                  
## Tree #214. length = 55.973 (0.000%), 61 Climbs, 0 Grafts of 6                  
## Tree #215. length = 55.973 (0.000%), 50 Climbs, 0 Grafts of 1                  
## Tree #216. length = 55.973 (0.000%), 92 Climbs, 0 Grafts of 2                  
## Tree #217. length = 55.973 (0.000%), 49 Climbs, 0 Grafts of 2                  
## Tree #218. length = 55.973 (0.000%), 91 Climbs, 0 Grafts of 3                  
## Tree #219. length = 55.973 (0.000%), 81 Climbs, 0 Grafts of 2                  
## Tree #220. length = 55.973 (0.000%), 68 Climbs, 0 Grafts of 1                  
## Tree #221. length = 55.973 (0.000%), 101 Climbs, 0 Grafts of 1                 
## Tree #222. length = 55.973 (0.000%), 45 Climbs, 0 Grafts of 2                  
## Tree #223. length = 55.973 (0.000%), 69 Climbs, 0 Grafts of 2                  
## Tree #224. length = 55.973 (0.000%), 66 Climbs, 0 Grafts of 2                  
## Tree #225. length = 55.973 (0.000%), 78 Climbs, 0 Grafts of 1                  
## Tree #226. length = 55.973 (0.000%), 76 Climbs, 0 Grafts of 2                  
## Tree #227. length = 55.973 (0.000%), 51 Climbs, 0 Grafts of 5                  
## Tree #228. length = 55.973 (0.000%), 36 Climbs, 0 Grafts of 3                  
## Tree #229. length = 55.973 (0.000%), 66 Climbs, 0 Grafts of 2                  
## Tree #230. length = 55.973 (0.000%), 30 Climbs, 0 Grafts of 1                  
## Tree #231. length = 55.973 (0.000%), 96 Climbs, 0 Grafts of 2                  
## Tree #232. length = 55.973 (0.000%), 78 Climbs, 0 Grafts of 3                  
## Tree #233. length = 55.973 (0.000%), 39 Climbs, 0 Grafts of 2                  
## Tree #234. length = 55.973 (0.000%), 75 Climbs, 0 Grafts of 1                  
## Tree #235. length = 55.973 (0.000%), 51 Climbs, 0 Grafts of 1                  
## 
## Finalizing the best tree (#136):
## 
## length = 55.973 (0.000%), 0 Climbs                                             
## 
## Time difference of 82.39 secs
interactivetreeA <- ggtree(tree_rips)+ geom_tiplab() 
#fun tree for people who like to click on things
ggplotly(interactivetreeA) %>% plotly::add_text(data = interactivetreeA$data,  x = ~x,  y = ~y,  text = ~label,  textposition = 'right', size=1)

Some very vague conclusions

Ralstonia solanacearum is found on all continents. As crops move, this bacteria has the potential to spread throughout and diversify. Some strains are event becoming cold resistant and they are able to survive in new climates. Building a phylogenetic tree allows us to investigate where strains are evolving from and how they can be prevented from moving forward.

If I could do this again

I would not melt my computer trying to make a really big tree even though it would’ve been really cool.

Return to Homepage